package com.sg.dto.biz.pbff.req;

import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import javax.validation.constraints.NotNull;
import java.io.Serializable;


/**
 * @desc BffAddHostTypeReqDto
 * @使用场景
 */
@Data
public class BffAddHostTypeReqDto implements Serializable {

    /**
     * 宿主类型名称
     */
    @NotNull(message = "宿主类型名称不能为空")
    @ApiModelProperty("宿主类型名称")
    private String hostTypeName;

    /**
     * 宿主类型编码
     */
    @NotNull(message = "宿主类型编码不能为空")
    @ApiModelProperty("宿主类型编码")
    private String hostTypeCode;

    /**
     * 宿主类型身份 PERSONAL:个人 DEPT:部门 THING:事物
     */
    @NotNull(message = "宿主类型身份不能为空")
    @ApiModelProperty("宿主类型身份")
    private String categoryTypeCode;

    /**
     * 是否系统类型 TRUE:是 FALSE:否
     */
    @NotNull(message = "是否系统类型不能为空")
    @ApiModelProperty("是否系统类型")
    private String isSystem;

    /**
     * 宿主身份内容表编码 OMS_FRAMEWORK_ORIGINAL_ROLE_MEMBER:身份人员表 OMS_ORG_INDUCTION_RECORD:就职记录表 OMS_FRAMEWORK_USERS:账号表 OMS_ORG_DEPT:部门表 OMS_ORG_ORGANIZATION:组织表 OMS_FRAMEWORK_SPACE:空间表 OMS_BASIC_CONTENT_TAG_RECORD:业务应用内容标签记录表
     */
    @ApiModelProperty("宿主身份内容表编码")
    private String hostSurfaceCode;

    /**
     * 宿主身份入参外键字段编码 ORIGINAL_ROLE_MEMBERID:身份人员ID INDUCTION_RECORDID:就职记录ID USERID:账号ID DEPTID:部门ID ORGID:组织ID SPACEID:空间ID TAG_CONTENT_RECORDID:业务应用内容标签记录表ID
     */
    @ApiModelProperty("宿主身份入参外键字段编码")
    private String hostInputFieldCode;

    /**
     * 业务身份类型编码 DEPT_USER:部门下人员 POSITION_USER:职务下人员 STATION_USER:岗位下人员 STATION_TYPE_USER:岗位类型下人员 DEPTTYPE_DEPT:部门类型下部门 TAG_MAJOR:标签专业关系
     */
    @ApiModelProperty("业务身份类型编码")
    private String inputTypeCode;

    /**
     * 系统入参内容表编码 OMS_ORG_DEPT:部门表 OMS_ORG_POSITION:职务表 OMS_ORG_STATION:岗位表 OMS_ORG_STATION_TYPE:岗位类型 OMS_BASE_METADATA_CODE:编码表 OMS_BASE_TAG:标签表
     */
    @ApiModelProperty("系统入参内容表编码")
    private String inputSurfaceCode;

    /**
     * 主体生命周期 CURRENTLY_VALID:当前有效 EDITING:正在编辑 ARCHIVING:历史存档
     */
    @NotNull(message = "主体生命周期不能为空")
    @ApiModelProperty("主体生命周期")
    private String subjectLifeCycle;


}
   